
import Head from 'next/head'

<Head>
  <script>
    {
      `(function() {
         var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?e60fb290e204e04c5cb6f79b0ac1e697";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
       })();`
    }
  </script>
</Head>

![LangChain](https://pica.zhimg.com/50/v2-56e8bbb52aa271012541c1fe1ceb11a2_r.gif)





输出解析器
======

> [概念指南](https://docs.langchain.com/docs/components/prompts/output-parser)

语言模型输出文本。但是很多时候，你可能想要获得比文本更结构化的信息。这就是输出解析器的作用。

输出解析器是帮助结构化语言模型响应的类。有两种主要的方法，一个输出解析器必须实现：

* `get_format_instructions() -> str`：一个方法，返回一个包含有关如何格式化语言模型输出的字符串。

* `parse(str) -> Any`：一个方法，接受一个字符串（假定为语言模型的响应)并将其解析为某个结构。



然后是一个可选的：

* `parse_with_prompt(str) -> Any`：一个方法，它接受一个字符串（假设是语言模型的响应）和一个提示（假设是生成这样的响应的提示），并将其解析为某种结构。提示在此大多数情况下是为了提供信息以便OutputParser重新尝试或以某种方式修复输出。

首先，我们建议您熟悉入门部分

* [输出解析器](output_parsers/getting_started.html)

之后，我们提供了有关所有不同类型的输出解析器的深入探讨。

* [逗号分隔列表输出解析器](output_parsers/examples/comma_separated.html)
* [输出修复解析器](output_parsers/examples/output_fixing_parser.html)

* [Pydantic输出解析器](output_parsers/examples/pydantic.html)

* [重试输出解析器](output_parsers/examples/retry.html)

* [结构化输出解析器](output_parsers/examples/structured.html)

